27 research outputs found

    Super-Droplet Approach to Simulate Precipitating Trade-Wind Cumuli - Comparison of Model Results with RICO Aircraft Observations

    Full text link
    In this study we present a series of LES simulations employing the Super-Droplet Method (SDM) for representing aerosol, cloud and rain microphysics. SDM is a particle-based and probabilistic approach in which a Monte-Carlo type algorithm is used for solving the particle collisions and coalescence process. The model does not differentiate between aerosol particles, cloud droplets, drizzle or rain drops. Consequently, it covers representation of such cloud-microphysical processes as: CCN activation, drizzle formation by autoconversion, accretion of cloud droplets, self-collection of raindrops and precipitation including aerosol wet deposition. Among the salient features of the SDM, there are: (i) the robustness of the model formulation (i.e. employment of basic principles rather than parametrisations) and (ii) the ease of comparison of the model results with experimental data obtained with particle-counting instruments. The model set-up used in the study is based on observations from the Rain In Cumulus over Ocean (RICO) field project (the GEWEX Cloud System Study Boundary Layer Cloud Working Group RICO case). Cloud and rain droplet size spectrum features obtained in the simulations are compared with previously published aircraft observations carried out during the RICO field project. The analysis covers height-resolved statistics of simulated cloud microphysical parameters such as droplet number concentration, effective radius, and the width of the cloud droplet size spectrum. The sensitivity of the results to the grid resolution of the LES, as well as to the sampling density of the probabilistic (Monte-Carlo type) model is discussed.Comment: Paper presented at the 16-th International Conference on Clouds and Precipitation ICCP-2012, Leipzig, Germany. Revised version with corrected LWC plots in Figures 2,3 and 4, and an updated discussion of the LWC plots in section 4.

    Object-oriented implementations of the MPDATA advection equation solver in C++, Python and Fortran

    Full text link
    Three object-oriented implementations of a prototype solver of the advection equation are introduced. The presented programs are based on Blitz++ (C++), NumPy (Python), and Fortran's built-in array containers. The solvers include an implementation of the Multidimensional Positive-Definite Advective Transport Algorithm (MPDATA). The introduced codes exemplify how the application of object-oriented programming (OOP) techniques allows to reproduce the mathematical notation used in the literature within the program code. A discussion on the tradeoffs of the programming language choice is presented. The main angles of comparison are code brevity and syntax clarity (and hence maintainability and auditability) as well as performance. In the case of Python, a significant performance gain is observed when switching from the standard interpreter (CPython) to the PyPy implementation of Python. Entire source code of all three implementations is embedded in the text and is licensed under the terms of the GNU GPL license

    libcloudph++ 0.2: single-moment bulk, double-moment bulk, and particle-based warm-rain microphysics library in C++

    Full text link
    This paper introduces a library of algorithms for representing cloud microphysics in numerical models. The library is written in C++, hence the name libcloudph++. In the current release, the library covers three warm-rain schemes: the single- and double-moment bulk schemes, and the particle-based scheme with Monte-Carlo coalescence. The three schemes are intended for modelling frameworks of different dimensionality and complexity ranging from parcel models to multi-dimensional cloud-resolving (e.g. large-eddy) simulations. A two-dimensional prescribed-flow framework is used in example simulations presented in the paper with the aim of highlighting the library features. The libcloudph++ and all its mandatory dependencies are free and open-source software. The Boost.units library is used for zero-overhead dimensional analysis of the code at compile time. The particle-based scheme is implemented using the Thrust library that allows to leverage the power of graphics processing units (GPU), retaining the possibility to compile the unchanged code for execution on single or multiple standard processors (CPUs). The paper includes complete description of the programming interface (API) of the library and a performance analysis including comparison of GPU and CPU setups.Comment: The library description has been updated to the new library API (i.e. v0.1 -> v0.2 update). The key difference is that the model state variables are now mixing ratios as opposed to densities. The particle-based scheme was supplemented with the "particle recycling" process. Numerous editorial corrections were mad

    PyPartMC: A Pythonic interface to a particle-resolved, Monte Carlo aerosol simulation framework

    Full text link
    PyPartMC is a Pythonic interface to PartMC, a stochastic, particle-resolved aerosol model implemented in Fortran. Both PyPartMC and PartMC are free, libre, and open-source. PyPartMC reduces the number of steps and mitigates the effort necessary to install and utilize the resources of PartMC. Without PyPartMC, setting up PartMC requires: working with UNIX shell, providing Fortran and C libraries, and performing standard Fortran and C source code configuration, compilation and linking. This can be challenging for those less experienced with computational research or those intending to use PartMC in environments where provision of UNIX tools is less straightforward (e.g., on Windows). PyPartMC offers a single-step installation process of PartMC and all dependencies through the pip Python package manager on Linux, macOS, and Windows. This allows streamlined access to the unmodified and versioned Fortran internals of the PartMC codebase from both Python and other interoperable environments (e.g., Julia through PyCall). Consequently, users of PyPartMC can setup, run, process and visualize output of PartMC simulations using a single general-purpose programming language

    PySDM v1 : particle-based cloud modeling package for warm-rain microphysics and aqueous chemistry

    Get PDF
    PySDM is an open-source Python package for simulating the dynamics of particles undergoing condensational and collisional growth, interacting with a fluid flow and subject to chemical composition changes. It is intended to serve as a building block for process-level as well as computational-fluid-dynamics simulation systems involving representation of a continuous phase (air) and a dispersed phase (aerosol), with PySDM being responsible for representation of the dispersed phase. The PySDM package core is a Pythonic high-performance implementation of the Super-Droplet Method (SDM) Monte-Carlo algorithm for representing collisional growth, hence the name. PySDM has two alternative parallel number-crunching backends available: multi-threaded CPU backend based on Numba and GPU-resident backend built on top of ThrustRTC. The usage examples are built on top of four simple atmospheric cloud modelling frameworks: box, adiabatic parcel, single-column and 2D prescribed flow kinematic models. In addition, the package ships with tutorial code depicting how PySDM can be used from Julia and Matlab
    corecore